home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Magazin: Amiga-CD 1995 October
/
Amiga-CD 1995 #10.iso
/
weitere_demos
/
adm
/
arexx
/
turbotext
/
insertaddress.ttx
< prev
Wrap
Text File
|
1995-06-04
|
4KB
|
108 lines
/* $VER InsertAddress.ttx 1.0 (02.12.92)
Makro für TurboText.
Fügt die zum unter dem Cursor befindlichen Nachnamen zugehörige
Adresse in den Text ein. Fragt nach, ob Adresse eingefügt werden
soll - wenn nicht, dann wird weitergesucht.
Es könnten auch Patterns benutzt werden, doch leider liefert die
GETWORD-Funktion von TTX keine Patterns wie #? zurück.
Written by Jan Geißler. */
OPTIONS RESULTS
GETWORD /* Wort unter Cursor holen */
WORT = RESULT
ADDRESS 'ADDRESSMASTER.1'
fst = 1 /* Anfangsposition = 1 (= erste Adresse) */
res = 0
DO FOREVER /* Endlosschleife */
ADM.NAME = WORT
SEARCH fst ADM /* Eintrag suchen */
res = RESULT
IF res >-1 THEN DO /* Rückgabewert = Nummer der gefundenen
Adresse */
GETADRENTRY RESAD /* Adresse holen in Stemvariable RESAD */
ADDRESS
/* Abfrage, ob richtige Adresse gefunden */
req = RESAD.VORNAME || "_" || RESAD.NAME
"REQUESTBOOL" "Diese_Adresse_nehmen?" req
IF RESULT=Yes THEN DO /* Wenn Adresse übernommen werden soll */
MOVELEFT
GETCHAR /* Zeichen unter Cursor */
IF DATATYPE(RESULT,ALPHANUMERIC)=0 THEN MOVERIGHT
ELSE DO
MOVERIGHT
MOVEPREVWORD
END;
GETCURSORPOS FOLDS /* X/Y-Position holen */
PARSE VAR RESULT ver hor dum
SAY hor
DELETEEOW /* Wort löschen */
INSERT RESAD.VORNAME RESAD.NAME /* Name einfügen */
ver = ver+1 /* Y-Wert erhoehen */
INSERTLINE NOBREAK INDENT /* Neue Zeile */
MOVE FOLDS ver hor /* Cursor bewegen */
TEXT RESAD.ADRESSE1 /* Adreßfeld 1 */
IF RESAD.ADRESSE2~="" THEN DO
ver = ver+1 /* Y-Wert erhoehen */
INSERTLINE NOBREAK /* Neue Zeile */
MOVE FOLDS ver hor /* Cursor bewegen */
TEXT RESAD.ADRESSE2 /* Adreßfeld 2 */
END;
ver = ver+1 /* Y-Wert erhoehen */
INSERTLINE NOBREAK /* Neue Zeile */
MOVE FOLDS ver hor /* Cursor bewegen */
TEXT RESAD.PLZ RESAD.ORT /* PLZ Ort */
IF RESAD.LAND~="" THEN DO
ver = ver+1 /* Y-Wert erhoehen */
INSERTLINE NOBREAK /* Neue Zeile */
MOVE FOLDS ver hor /* Cursor bewegen */
TEXT RESAD.LAND /* Land */
END;
EXIT /* ... und Programm verlassen */
END
ELSE /* Sonst: nächsten Eintrag suchen */
ADDRESS
fst = res + 1
END
ELSE /* Fehler aufgetreten */
ADDRESS
SELECT
WHEN res=-2 THEN msg="AdressSpeicher_leer!"
WHEN res=-3 THEN msg="Nicht_genug_Speicher!"
WHEN res=-4 THEN msg="Aufruf_v.SEARCH_falsch!"
WHEN res=-5 THEN msg="Interner_Fehler_in_Search"
WHEN res=-6 THEN msg="Kein_Suchparam.in Stem"
WHEN res=-7 THEN msg="SearchPos_ungültig!"
OTHERWISE DO
BEEPSCREEN
EXIT
END;
REQUESTBOOL "Fehler!" msg
EXIT
END /* IF */
END /* DO */